1 DOM对象和 JQ 对象的区别
JQ 对象就是通过 JQ 包装 DOM 对象后产生的对象, JQ 对象是 JQ 独有的, 这意味着如果一个对象是 JQ 对象,那么就可以使用 JQ 里面的方法; 需要注意的是 JQ 对象无法使用 DOM 对象的任何方法,同样的 DOM 对象也无法使用 JQ 里的任何方法
JQ 对象与 DOM 对象的互转
- 将 JQ 对象转换成 DOM 对象的两种方法, JQ 对象是一个类似数组的对象
- 可以通过用 [index]的方法得到相应的 DOM 对象: $("someID")[index]
- 通过 get(index)方法得到相应的 DOM 对象: $someJQobj.get(0)
- DOM对象转成 JQ 对象, 只需要用$()把 DOM 对象包装起来, 就可以获得一个 JQ 对象了:$(DOM)
2 JQ 选择器
JQ 的选择器获取的永远是对象, 即使网页上没有此元素,. 所以当判断 JQ 选择器选择的某个元素是否存在于网页中时,不能使用 if 语句,而是在 if 判断语句里判断元素的长度,或者将 JQ 对象转换成 DOM 对象:
if($("obj").length>)
if($("obj")[0])
JQ 选择器分为 基本选择器, 层次选择器, 过滤选择器和表单选择器.
- 基本选择器
- 层次选择器(一共7个)
- 过滤选择器
- 基本过滤
- 内容过滤
- 可见性过滤
- 属性过滤
- 子元素过滤
- 表单对象属性过滤
- 表单选择器
3 JQ中的 DOM 操作
利用 JQ 创建一个元素节点,然后插入到文档中
var $span = $("<p></p>").html("someinfo");
或者简写成 $("<p/>")
$("document").append($span)
添加节点的方法们
删除节点的方法们(3种)
- remove()
- detach()
- empty()
复制节点
- clone() //需要注意的被复制的新元素并不具有任何行为
替换节点
如果在替换之前, 已经为元素绑定了时间,替换后原先绑定的事件将会与被替换的元素一起消失
- replaceWith()
- replaceAll()
包裹节点
- wrap()
- wrapAll()
- wrapInner()
属性操作
- 设置属性
- 获取属性
- 删除属性
Class 操作
- addClass()
- removeClass()
- hasClass //判断 效果等价与 .is()
焦点事件
- focus()
- blur() defaultValue //用来获取表单默认的 value
遍历节点
- children()用来遍历匹配的元素的子元素,而不考虑其他后代元素
- next()
- prev()
- siblings()
- closest()
JQ中的事件和动画
- event.stopPropagation() // 用来阻止事件冒泡
- event.preventDefault 阻止元素自身的默认行为 如果想同时应用两者, 可以在事件对象上 return false
- event.pageX & event.pageY 获取光标相对于页面的 X 和 Y 坐标.
动画
JQ 中的动画效果都可以指定4中动画参数, slow , normal , fast ,和自定义数值
- hide() 会将该元素的 display 设置为none动画状态时,会改变元素的高度,宽度,不透明度,show 方法也是如此
- show() hide方法会在将元素隐藏之前保存它之前的 display 状态,从而 show()便可以恢复它之前的 display 状态这两者在不带参数的情况下是立刻隐藏/显示所匹配的元素,不会有任何动画
- fadeIn() 只改变元素的透明度, 显示出来
- fadeOut() 同上, 只是隐藏元素
- slideUp() 只改变元素的高度
- slideDown() 同上
- animate(params, speed ,callback)
- params: 一个包含样式属性及值的映射,如{property1:"val",property2:"val"}
- spedd : 速度
- callback : 回调函数 其他变种动画
- toggle 切换隐藏和显示
- slideToggle 只切换高度
- fadeTo 只调整元素的不透明度
- fadeToggle 切换元素的不透明度
动画队列
- 一组元素上的动画效果
- 当在一个 animate 方法中应用多个属性时, 动画是同时发生
- 当以链式的写法应用动画方法时, 动画是按照顺序发生的
- 多组元素上的动画效果
- 默认情况下,动画都是同时发生的
- 当以回调的形式应用动画方式时,动画是按照回调的顺序发生的 需要注意的是:在动画方法中,其他非动画的方法会插队
3 表单
prop() 和 attr()的应用原则
- 添加属性名称或只存在 boolean 值的属性应该使用 prop()
- trigger() 和 triggerHandle() 的区别之一: 前者会冒泡,触发默认的浏览器事件,后者不会冒泡
- append() 和 appendTo () 的区别之一: appendTo 可以将元素移动到另一个地方
- end() 终止在当前链的最新过滤操作,并返回匹配的元素的以前状态。
- find() 通过一个选择器,jQuery对象,或元素过滤,得到当前匹配的元素集合中每个元素的后代。方法与 children() 相似, 而不同的是 children 方法只会查找子元素,不会涉及到孙元素
JQ 中的 AJAX
- $.Ajax()
- load( url , [data],callback) / $.get() / $.post() 最简单的方法, 功能是 能载入远程 HTML代码,并插入到 DOM 中
- $.getScript and $.getJSON()